def Tribonacci(signature, n):
    """
    广义斐波那契数列
    编写一个函数Tribonacci(signature, n)，如果我们要以[1,1,1]作为起始输入，可以得到广义的斐波那契数列：[1, 1 ,1, 3, 5, 9, 17, 31, ...]
    输入参数signature是一个列表，包含了起始的3个数字，n代表返回的数列的长度（非负），你需要返回完整的广义斐波那契数列
    :param signature:
    :param n:
    :return:
    """

    [signature.append(sum(signature[-3:])) for i in range(3, n)]

    return signature[:n]


if __name__ == '__main__':
    print(Tribonacci([1, 1, 1], 10))
    print(Tribonacci([300, 200, 100], 0))
    print(Tribonacci([0.5, 0.5, 0.5], 30))
    print(Tribonacci([3.14, 3.14, 3.14], 100))
